package com.shanjupay.merchant.convert;

import com.shanjupay.merchant.api.dto.MerchantDTO;
import com.shanjupay.merchant.entity.Merchant;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * <h1>定义dto和entity之间的转换规则</h1>
 * @author lsy
 * @date 2020/05/06
 */
@Mapper
public interface MerchantConvert {

    /**
     * 转换类实体
     */
    MerchantConvert INSTANCE = Mappers.getMapper(MerchantConvert.class);

    /**
     * 把dto转换成entity
     */
    Merchant dto2entity(MerchantDTO merchantDTO);

    /**
     * 把entity转换成dto
     */
    MerchantDTO entity2dto(Merchant merchant);

    /**
     * list之间也可以转换，很entity的List转成MerchantDTO list
     */
    List<MerchantDTO> entityList2dtoList(List<Merchant> merchants);

    public static void main(String[] args) {
        // dto 转 entity
        MerchantDTO merchantDTO = new MerchantDTO();
        merchantDTO.setUsername("测试");
        Merchant entity = MerchantConvert.INSTANCE.dto2entity(merchantDTO);
        System.out.println(entity);

        // entity转 dto
        entity.setMobile("123456");
        MerchantDTO merchantDTO1 = MerchantConvert.INSTANCE.entity2dto(entity);
        System.out.println(merchantDTO1);
    }
}
